package com.myrest.provider.poi.work.entities.user;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

/**
 * @Author: llq
 * @Date: 2020/4/8
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
// 索引库ems 类型 _doc 分片1 副本0
@Document(indexName = "ems",type = "_doc", shards = 1, replicas = 0)
public class ESUser {
    /**
     * 标记一个字段为主键
     */
    @Id
    private Long id;

    /**
     * 在es 2.*版本里面是没有这两个字段，只有string字段。
     * 5.*之后，把string字段设置为了过时字段，引入text，keyword字段
     * 这两个字段都可以存储字符串使用，但建立索引和搜索的时候是不太一样的
     * keyword：存储数据时候，不会分词建立索引
     * text：存储数据时候，会自动分词，并生成索引（这是很智能的，但在有些字段里面是没用的，所以对于有些字段使用text则浪费了空间）
     * e.g : 1.5.17没有,2.x有
     */
    @Field(type = FieldType.Keyword)
    private String username;

    @Field(type = FieldType.Keyword)
    private String password;

    /**
     * FieldType.Text 會分词建立索引
     * analyzer 分词器的名称
     */
    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String nickName;

    @Field(type = FieldType.Integer)
    private Integer sex;

    public ESUser(Long id,String firstCode,String secordCode,String content,Integer type){
        this.id=id;
        this.username=firstCode;
        this.password=secordCode;
        this.nickName=content;
        this.sex=type;
    }
}
